package com.atguigu.gmall.product.service;

import com.atguigu.gmall.model.product.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * @author 里
 */
public interface ManageService {

    /**
     * 获取所有的一级分类
     * @return
     */
    List<BaseCategory1> getAllBaseCategory1();

    /**
     * 获取所有的二级分类
     * @param category1Id
     * @return
     */
    List<BaseCategory2> getAllBaseCategory2(Long category1Id);

    /**
     * 获取所有的三级分类
     * @param category2Id
     * @return
     */
    List<BaseCategory3> getAllBaseCategory3(Long category2Id);

    /**
     * 根据分类id获取平台属性数据集合
     * @param category1Id
     * @param category2Id
     * @param category3Id
     * @return
     */
    List<BaseAttrInfo> getAttrInfoList(Long category1Id, Long category2Id, Long category3Id);

    /**
     * 保存平台属性数据
     * @param baseAttrInfo
     */
    void saveAttrInfo(BaseAttrInfo baseAttrInfo);

    /**
     * 根据attrId获取平台属性值数据集合
     * @param attrId
     * @return
     */
    List<BaseAttrValue> getAttrValueList(Long attrId);

    /**
     * 根据属性值id 来获取属性
     * @param attrId
     * @return
     */
    BaseAttrInfo getAttrInfo(Long attrId);

    /**
     * 查询spuInfo列表数据
     * @param spuInfoPage
     * @param spuInfo
     * @return
     */
    IPage<SpuInfo> getSpuInfoPage(Page<SpuInfo> spuInfoPage, SpuInfo spuInfo);
}
